package com.alibaba.citrus.cr.mn.order.center.forecastorder;

import com.alibaba.lattice2.epoch.sdk.model.Result;
import com.epoch.app.mnordercenter.model.dto.*;

import java.util.List;

public interface ForecastOrderBizDomainService {

    /**
     * 批量创建
     */
    Result<ForecastBizAsyncResponse> batchCreate(ForecastOrderBizBatchCreateRequest request);

    /**
     * 单条创建
     * @param forecastOrderBizCreateRequest
     * @return
     */
    Result<ForecastBizSyncResponse> create(ForecastOrderBizCreateRequest forecastOrderBizCreateRequest);

    /**
     * 批量提交
     */
    Result<List<SubmitForecastResponseDTO>> batchSubmit(ForecastBizBatchSubmitRequest request);

    /**
     * 查询分析结果
     */
    Result<List<ForecastOrderBizQueryAnalysisResponse>> queryAnalysis(ForecastOrderBizQueryAnalysisRequest request);

    /**
     * 修改预报订单
     */
    Result<ModifyForecastResponseDTO> modify(ModifyForecastRequest request);

    /**
     * 查询预报订单详情
     */
    Result<QueryForecastResponse> query(QueryForecastRequest request);

    /**
     * 批量取消
     */
    Result<List<CancelForecastResponseDTO>> batchCancel(CancelForecastRequest request);

    /**
     * 分页查询预报订单行
     */
    Result<List<PageQueryForecastDetailResponse>> pageQueryLine(PageQueryForecastLineRequest request);

    Result<List<PageQueryForecastDetailResponse>> pageQueryLine(PageQueryForecastLineRequest request, String orderCategory);

    /**
     * 分页查询预报订单
     */
    Result<List<QueryForecastResponse>> pageQuery(PageQueryForecastRequest request);

    Result<List<QueryForecastResponse>> pageQuery(PageQueryForecastRequest request, String orderCategory);

    /**
     * 批量分析
     */
    Result<AnalysisForecastResponseDTO> batchAnalysis(AnalysisForecastRequest request);

    /**
     * 批量查询活动
     */
    Result<List<ForecastOrderBizQueryActivityResponse>> batchQueryActivity(ForecastOrderBizBatchQueryActivityRequest request);

    /**
     * 批量确认
     */
    Result<ForecastBizAsyncResponse> batchConfirm(ConfirmReplyRequest confirmReplyRequest);

    /**
     * F2B批量确认
     * @param confirmGroupReplyRequest
     * @return
     */
    Result<List<ForecastBizGroupResponse>> batchGroupConfirm(ConfirmGroupReplyRequest confirmGroupReplyRequest);

    /**
     * 批量修改预计回复
     */
    Result<List<ForecastReplyBizModifyResponse>> batchModifyReply(ForecastReplyBizBatchModifyRequest request);

    /**
     * 页面分页查询预报明细列表
     */
    Result<List<ForecastOrderLineBizQueryResponse>> pageQueryOrderLineList(ForecastOrderLineBizQueryRequest request);

    /**
     * 页面查询预报单详情
     */
    Result<ForecastOrderBizQueryResponse> queryForecastOrderDetail(String id);

    /**
     * 批量关闭预报回复
     */
    Result<List<ForecastOrderBizCloseResponse>> batchClose(ForecastOrderBizBatchCloseRequest request);

    /**
     * 批量修改活动
     */
    Result<List<ForecastOrderBizModifyActivityResponse>> batchModifyActivity(ForecastOrderBizBatchModifyActivityRequest request);

    /**
     * F2B批量确认
     * @param confirmReplyRequest
     * @return
     */
    Result<List<ForecastBizGroupResponse>> syncBatchConfirm(ConfirmReplyFulfillRequest confirmReplyRequest);

}
